// 用户管理功能
export function initUserManagement() {
  // 获取认证令牌
  function getAuthToken() {
    try {
      const userData = localStorage.getItem('voice_community_user');
      if (userData) {
        const user = JSON.parse(userData);
        return user.token;
      }
    } catch (error) {
      console.error('获取认证令牌失败:', error);
    }
    return null;
  }

  // 显示状态消息
  function showStatus(message, type) {
    const statusDiv = document.getElementById('admin-creation-status');
    if (statusDiv) {
      statusDiv.className = 'mt-4 text-sm p-3 rounded';
      statusDiv.classList.remove('hidden');
      
      if (type === 'success') {
        statusDiv.className += ' bg-green-100 text-green-800 border border-green-200';
      } else if (type === 'error') {
        statusDiv.className += ' bg-red-100 text-red-800 border border-red-200';
      } else {
        statusDiv.className += ' bg-blue-100 text-blue-800 border border-blue-200';
      }
      
      statusDiv.textContent = message;
      
      // 3秒后自动隐藏成功和错误消息
      if (type === 'success' || type === 'error') {
        setTimeout(() => {
          statusDiv.classList.add('hidden');
        }, 3000);
      }
    }
  }

  // 隐藏状态消息
  function hideStatus() {
    const statusDiv = document.getElementById('admin-creation-status');
    if (statusDiv) {
      statusDiv.classList.add('hidden');
    }
  }

  // 创建管理员账户
  async function createAdmin() {
    const username = document.getElementById('new-admin-username').value.trim();
    const password = document.getElementById('new-admin-password').value.trim();

    // 验证输入
    if (!username) {
      showStatus('请输入用户名', 'error');
      return;
    }

    if (!password) {
      showStatus('请输入密码', 'error');
      return;
    }

    if (password.length < 6) {
      showStatus('密码长度至少6位', 'error');
      return;
    }

    // 检查用户名格式
    if (!/^[a-zA-Z0-9_]{3,20}$/.test(username)) {
      showStatus('用户名只能包含字母、数字和下划线，长度3-20位', 'error');
      return;
    }

    try {
      showStatus('正在创建管理员账户...', 'info');
      
      const token = getAuthToken();
      if (!token) {
        showStatus('❌ 请先登录管理员账户', 'error');
        return;
      }

      const response = await fetch('/api/auth/create-admin', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Bearer ${token}`
        },
        body: JSON.stringify({ username, password })
      });

      const result = await response.json();

      if (result.success) {
        // 清空表单
        document.getElementById('new-admin-username').value = '';
        document.getElementById('new-admin-password').value = '';
        
        showStatus(`✅ 管理员账户 "${username}" 创建成功！`, 'success');
        // 创建成功后刷新用户列表（如果在admin页面）
        try { if (typeof window.loadUsers === 'function') window.loadUsers(); } catch {}
      } else {
        showStatus(`❌ 创建失败：${result.message}`, 'error');
      }
    } catch (error) {
      console.error('创建管理员失败:', error);
      showStatus('❌ 创建失败，请检查网络连接', 'error');
    }
  }

  // 初始化事件监听器
  function initEventListeners() {
    // 创建管理员按钮
    const createBtn = document.getElementById('create-admin-btn');
    if (createBtn) {
      createBtn.addEventListener('click', createAdmin);
    }

    // 回车键提交
    const usernameInput = document.getElementById('new-admin-username');
    const passwordInput = document.getElementById('new-admin-password');
    
    if (usernameInput) {
      usernameInput.addEventListener('keydown', (e) => {
        if (e.key === 'Enter') {
          passwordInput.focus();
        }
      });
    }
    
    if (passwordInput) {
      passwordInput.addEventListener('keydown', (e) => {
        if (e.key === 'Enter') {
          createAdmin();
        }
      });
    }
  }

  // 初始化
  function init() {
    initEventListeners();
    console.log('用户管理功能已初始化');
  }

  // 启动初始化
  init();
}
